المشرف المتميز لشهر يونيو 2004

العضو المميز لشهر يونيو 2004

HGB

سابق

سابق

راكان الحنيطي

     


صفحات: (5) « الاول ... 2 3 [4] 5  ( اذهب إلى أول مشاركة غير مقروءة ) Reply to this topicStart new topicStart Poll

> كل ما تود معرفته عن ال SQL SERVER, سلسلة دروس
mohamed_k78
Quote Post


عضو جديد
*

مجموعة اعضاء
مشاركات : 25
رقم العضو 24,954
انضم في : 30-April 04



أتفق مع أخي معتصم وأرجو توضيع الفرق أن أمكن.....وجزاكم الله خير الجزاء الجنة
محمد عبدالله
PMEmail Poster
Top
goldnoil
Quote Post


مشرف منتدى مبرمجي Microsoft SQL Server
Group Icon

مجموعة المشرفين
مشاركات : 362
رقم العضو 13,643
انضم في : 9-May 03



اخواني سؤال في محله
لكن لاتكن عجول لم ادخل في التفاصيل بعد

اريد فقط التوضيح عن عمل قواعد البيانات داخل لغة البرمجة

اخي walcom اتمنى لك التوفيق وان شاء الله خير وتنزل حرارة الاختبار

تم تحرير هذه المشاركة بواسطة goldnoil فيJul 21 2004, 03:13 PM


--------------------
إذا لم تزد شيئا على الحياة كنت أنت زائدا على الحياة..

- الرجل الذي صعد الهملايا قال لم أنتصر على جبل.. انتصرت على نفسي!

- لن تكون فاشلا إلا إذا توقفت عن المحاولة


براءة اختراع بالمجان

كل ماتود معرفته عن مسجل النظام

SQL SERVER سلسلة دروس من الصفر حتى الاحتراف
PMEmail Poster
Top
goldnoil
Quote Post


مشرف منتدى مبرمجي Microsoft SQL Server
Group Icon

مجموعة المشرفين
مشاركات : 362
رقم العضو 13,643
انضم في : 9-May 03



ربط قاعدة البيانات بالكود 3

المقدمة:

هذا الجزء الثالث من الدرس السابق فبعد أن تعلمنا نعرف المتغيرات التي سنعمل عليها و ربطنا قاعدة البيانات يبقى أمامنا ربط الجدول و إظهار محتويات القاعدة للمستخدم ، أما التنقل بين السجلات و أوامر الحفظ و التعديل و الإضافة فستكون في الجزء الثالث، الآن دعونا نبدأ

الدرس7

أولا سنقوم بربط الجدول الذي في قاعدة البيانات و نخزنه في المتغير الذي أنشأناه في الدرس السابق باسم t علما أن الجدول الرئيسي اسمه tb1 ولكي نقوم بذلك اكتب الأمر التالي ف حدث التحميل للفورم load

CODE

Private Sub Form_Load()
Set t = d.OpenRecordset("tb1", dbOpenTable)
End Sub


دعنا نشرح الخطوة السابقة بالتفصيل ، أولا وضعنا ربط الجدول في حدث التحميل للفورم ربما تسأل عن السبب و الجواب إن هذا ما يقوم به المحترفون لكي تهيئ التعامل مع البيانات عند تحميل الفورم إلا إذا كان لديك سبب أخر لتخالف هذه القاعدة
بعد ذلك و ضعنا جملة الربط للجدول و بدأنا بأمر الإسناد المعروف Set ثم اسم القيمة التي سنسند قيم الجدول فيها و هي التي عرفناها فيما قبل باسم t بعد ذلك نكتب اسم القاعدة المستعار الذي أسندنا القاعدة الأصلية فيه و هو d ثم نكتب الأمر الذي سيفتح لنا الجدول لكي نستطيع الوصول إلى محتواه وهو Openrecordset بعد ذلك نكتب اسم الجدول الحقيقي بين علامتي تنصيص و نكتب نوع الربط وهو dbopentable استخدم هذه الطريقة فقط و لا تسأل لماذا لأنها من الأوامر الثابتة و من أنواع الربط و ستستطيع التفريق بين أنواع الربط في المستقبل مع كثرة التمارين فلا تستعجل ، هكذا تكون قد قمت بربط قاعدة البيانات و الجدول بواسطة الكود ،،،، مبروك

و الآن سنتعرف على كيفية إظهار البيانات للمستخدم ، و قبل ذلك قم بتصميم واجهة المستخدم ووضع مربعات النص العناوين كما في الصورة التالية و قد وضحت على الصورة التسميات التي سنعتمدها :


user posted image


و الآن سوف ننشئ إجراء إظهار البيانات لكي نستدعيه في كل مرة نحتاجه بدلا من إعادة كتابته سيكون على الشكل التالي:

CODE

Private Sub showdata()
If t.RecordCount < 1 Then Exit Sub   ' عندما يكون الجدول فارغ اخرج من الإجراء
Text1.Text = t!Name    ' نضع في مربع النص الأول قيمة حقل الاسم في الجدول t
Text2.Text = t!num    ' نفس الخطوة السابقة لحقل رقم السلعة
Text3.Text = t!price   'نفس الخطة السابقة لحقل السعر
End Sub


الآن دعنا نلقي نظرة على أجراء إظهار البيانات بدأنا أولا بالتأكد إذا كان الجدول يحتوي على بيانات أم لا فإذا كان لا يحتوي فنخرج من الإجراء لكي لا يحدث مشاكل أثناء العرض
بعد ذلك نقوم بإظهار قيمة ما في الحقول في مربعات النص ، و لاحظ أننا استخدمنا علامة التعجب ! لكي تفصل بين اسم الجدول المستعار و اسم الحقل ، يجب أن تفرق بين اسم الدول أو القاعدة المستعار و الأصلي و متى نستخدم كل منهما
و الآن يجب أن نضيف أمر استدعاء لإجراء العرض عند تحميل البرنامج فسيكون الأمر في حدث التحميل هكذا :

CODE

Private Sub Form_Load()
Set t = d.OpenRecordset("tb1", dbOpenTable)
Call showdata
End Sub



تم تحرير هذه المشاركة بواسطة goldnoil فيJul 21 2004, 03:20 PM


--------------------
إذا لم تزد شيئا على الحياة كنت أنت زائدا على الحياة..

- الرجل الذي صعد الهملايا قال لم أنتصر على جبل.. انتصرت على نفسي!

- لن تكون فاشلا إلا إذا توقفت عن المحاولة


براءة اختراع بالمجان

كل ماتود معرفته عن مسجل النظام

SQL SERVER سلسلة دروس من الصفر حتى الاحتراف
PMEmail Poster
Top
joe911
Quote Post


عضو مميز
****

مجموعة اعضاء
مشاركات : 758
رقم العضو 24,631
انضم في : 16-April 04



ما شاء الله,
الدروس أكثر من رائعة
و لكن هل من الممكن أن تستخدم الوشم Code عند كتابة الأكواد لتصبح الصفحة منسقة أكثر؟
و ألف شكر

تم تحرير هذه المشاركة بواسطة joe911 فيJul 20 2004, 05:19 PM
PMEmail Poster
Top
Fizom
Quote Post


عضو
**

مجموعة اعضاء
مشاركات : 73
رقم العضو 26,693
انضم في : 31-May 04



اخ goldnoil والله اكثر من رائع وفى انتظار باقى دروسك الروعة

ونعتذر لك عن التأخير فى الرد تحياتى لك
PMEmail Poster
Top
goldnoil
Quote Post


مشرف منتدى مبرمجي Microsoft SQL Server
Group Icon

مجموعة المشرفين
مشاركات : 362
رقم العضو 13,643
انضم في : 9-May 03



المعذرة من الاخوة
اريد ان اوضح نقطة وهي انه قد يرى البعض ان بعض من هذه الدروس مكانها الفيجوال بيزك

ان الموضوع ليس عن قواعد البيانات sql server فقط لكن الموضوع متكامل واريد ان اصل بنهايته الى قدرتنا على التعامل مع قواعد البيانات بشكل عام والsql server بشكل خاص داخل لغة البرمجة والتي اعتمدتها هنا هي الفيجوال بيزك وقد اوضحت في البداية ان العمل سيكون عبارة عن قسمين الاول عن قواعد البيانات والثاني عن ربطها بلغة البرمجةونحن الان في القسم الثاني
لذلك ارجو ان تتحفوني بارائكم وملاحظاتكم اولا باول حتى استطيع ان اضع اللبنة الاولى في طريق برمجة قواعد البيانات واي سؤال او استفسار انا جاهز بإذن الله

اخي joe911
تم اخذ ملاحظتك بعين الاعتبار وشكرا لك مرة اخرى



--------------------
إذا لم تزد شيئا على الحياة كنت أنت زائدا على الحياة..

- الرجل الذي صعد الهملايا قال لم أنتصر على جبل.. انتصرت على نفسي!

- لن تكون فاشلا إلا إذا توقفت عن المحاولة


براءة اختراع بالمجان

كل ماتود معرفته عن مسجل النظام

SQL SERVER سلسلة دروس من الصفر حتى الاحتراف
PMEmail Poster
Top
goldnoil
Quote Post


مشرف منتدى مبرمجي Microsoft SQL Server
Group Icon

مجموعة المشرفين
مشاركات : 362
رقم العضو 13,643
انضم في : 9-May 03



ربط قاعدة البيانات بالكود 4

:المقدمة

في هذا الجزء الرابع و الأخير من درس الكود سوف نتعلم كيفية التنقل بين السجلات و كيفية الحفظ و التعديل و الإضافة و الحذف ...1.....2..........3...................انطلق

الدرس8

التنقل بين السجلات :

لن تحتاج للتنقل بين السجلات إلا لـ :
السجل التالي و السجل السابق و السجل الأول و السجل الأخير


السجل التالي: ولكي تنتقل للسجل التالي سوف تحتاج لكتابة الأمر التالي في الزر المطلوب و هو في مثالنا cmd6

CODE

Private Sub cmd6_Click()
t.MoveNext
Call showdata
End Sub


لاحظ أننا استخدمنا اسم الجدول المستعار t ، ثم بعد ذلك استدعينا الإجراء showdata الذي عملناه في الجزء السابق لكي يقوم بعرض البيانات في السجل التالي وهذه الطريقة تنطبق على جميع أنواع التنقل القادمة

السجل السابق:
وكل ما تحتاج كتابته هذا الكود بنفس طريقة الكود السابق ( لا تنسى وضع الكود في المكان المناسب و هو هنا cmd7)

CODE
Private Sub cmd7_Click()
t.MovePrevious
Call showdata
End Sub


السجل الأول :
للانتقال للسجل الأول اكتب الكود التالي في زر الأمر cmd8 :


CODE
Private Sub cmd8_Click()
t.MoveFirst
Call showdata
End Sub


السجل الأخير :
للانتقال للسجل الأخير اكتب الكود التالي في زر الأمر cmd5 :

CODE
Private Sub cmd5_Click()
t.MoveLast
Call showdata
End Sub


هذه كل أوامر التنقل التي تحتاجها ، لكن لم ننتهي بعد فستواجهك مشكلة ، فمثلا عندما تريد أن تنتقل للسجل التالي و أنت في السجل الأخير طبعا لا يوجد سجل تالي لذلك سيتوقف البرنامج ، و نفس الشيء عند الانتقال للسجل السابق و أنت في السجل الأول فلا يوجد سجل سابق فسيتوقف البرنامج ، لذلك سنقوم بإضافة جملة شرطية للتأكد إذا كان السجل الأخير أو الأول حسب الحالة ثم نقوم بوضع أمر Movefirst أو movelast حيث إن هذين الأمرين لا يتأثران سواء كان هناك سجل أو لا و طريقة استخدامهم هكذا :

ملاحظة : نستخدم الدالة EOF لمعرفة آخر سجل في الجدول ، و نستخدم الدالة BOF لمعرفة أول سجل في الجدول

*سنضع الجملة الشرطية التالية في زر الانتقال للتالي فإذا كان هذا آخر سجل إذا انتقل للسجل التالي
CODE
If t.EOF Then t.MoveLast


و كذلك في زر الانتقال للسابق نضع شرط إذا كان هذا أول سجل إذا انتقل للسجل الأول

CODE
If t.BOF Then t.MoveFirst

لذلك سنضيف الجملتين السابقتين لكود الانتقال للتالي و الانتقال للسابق فسيصبح كود الانتقال للتالي هكذا :

CODE
Private Sub cmd6_Click()
t.MoveNext
If t.EOF Then t.MoveLast
Call showdata
End Sub


وكود الانتقال للسابق هكذا :

CODE
Private Sub cmd7_Click()
t.MovePrevious
If t.BOF Then t.MoveFirst
Call showdata
End Sub


عمليات السجلات :

الآن سنتعلم عمليات السجلات من حذف و إضافة و تعديل

إضافة سجل:

الأمر التالي يقوم بإضافة سجل و نضيف عليه أوامر لتمسح ما في مربعات النص لتهيئتها للإضافة:

CODE
Private Sub cmd1_Click()
t.AddNew 'إضافة سجل جديد
'الخطوات التالية لكي نقوم بمسح ما في مربعات النص لتهيئتها للإضافة و هي خطوة لتعطي طابع الاحتراف فقط
Text1.Text = ""
Text2.Text = ""
Text3.Text = ""
End Sub


حفظ سجل:
لتحفظ سجل يجب عليك أن تقوم بوضع القيم التي في مربعات النص في الحقول التي توازيها في الجدول ، و لاحظ أنه سوف يعطيك رسالة خطأ عندما تقوم بالحفظ دون أن تقوم باختيار تعديل سجل أو إضافة سجل لذلك يفترض بك أن تجعل زر الحفظ في حالة التمكين فقط عندما يضيف المستخدم سجلا أو يختار تعديل سجل، كذلك يجب عليك استخدام الدالة Val عند حفظ الحقول الرقمية لتجنب المشاكل عندما يتركه المستخدم فارغا ، و أيضا يجب عليك أن تقوم بتحديث الجدول بعد عملية الحفظ لتكمل العملية بسلام و هذا هو الكود المطلوب:


CODE
Private Sub cmd2_Click()
' نقوم في الخطوات التالية بنقل ما في مربعات النص إلى الحقول التي توازيها في قاعدة البيانات
t!Name = Text1.Text
t!num = Val(Text2.Text) ' لا حظ أننا استخدمنا هذه الدالة لكي يتم قبول الحقل في حالة كونه فارغ لان هذا حقل رقمي val
t!price = Val(Text3.Text)
t.Update
End Sub


تعديل سجل :
فقط اخبر البرنامج انك تريد التعديل بهذا الكود

CODE
Private Sub cmd3_Click()
t.Edit 'تسمح هذه الخاصية بتعديل البيانات في الحقل
End Sub


حذف سجل :

عملية حذف السجل سهلة ، و لكن ماذا بعد أن تحذف السجل ؟ بالطبع يجب أن تعرض السجل التالي ، و أيضا يجب أن تراعي المشاكل التي تواجهك عند انتقالك للسجل التالي فقد لا يكون هناك سجل تالي وقد شرحنا كيف تتفادى هذه المشكلة في هذا الدرس ، و هذا هو الكود اللازم :

CODE
Private Sub cmd4_Click()
t.Delete 'لحذف سجل
t.MoveNext 'للانتقال للسجل التالي بعد ا لحذف
If t.EOF Then t.MoveLast ' يحل هذا الإجراء مشكلة عدم وجود سجل تالي
End Sub



--------------------
إذا لم تزد شيئا على الحياة كنت أنت زائدا على الحياة..

- الرجل الذي صعد الهملايا قال لم أنتصر على جبل.. انتصرت على نفسي!

- لن تكون فاشلا إلا إذا توقفت عن المحاولة


براءة اختراع بالمجان

كل ماتود معرفته عن مسجل النظام

SQL SERVER سلسلة دروس من الصفر حتى الاحتراف
PMEmail Poster
Top
mohamed_k78
Quote Post


عضو جديد
*

مجموعة اعضاء
مشاركات : 25
رقم العضو 24,954
انضم في : 30-April 04



أرجو منك أخي GoldeNoil توضيح ماذا تعني بهذة العبارة
حد الحقل الذي تريد أن يكون الفرز على أساسه و ذلك من column to sort by
وشكرا لك أخي
PMEmail Poster
Top
طارق إبراهيم
Quote Post


عضو شرف
*****

مجموعة أعضاء الشرف
مشاركات : 1,022
رقم العضو 5,617
انضم في : 7-November 02



QUOTE

حد الحقل الذي تريد أن يكون الفرز على أساسه و ذلك من column to sort by

نفرض ان لديك جدول اسمه t1 يحتوى على عدة حقول مثل name ,phone,gender و انت تريد ترتيب بيانات الجدول على حسب الترتيب الابجدى للاسماء فستكتب عبارة sql مثل هذه
CODE

select * from t1 where gneder='male' order by name

اى قم بعرض كل حقول الجدول t1 و التى شرط ان يكون 'gender='male و قم بعرض الناتج مرتباً على حسب الحقل name

تم تحرير هذه المشاركة بواسطة طارق إبراهيم فيJul 25 2004, 07:43 AM


--------------------
كلما زادت معرفتي، ازدادت قناعتي بأن ما أجهله أكثر مما أعرفه
QUOTE

فأغلب من يسئل في المنتديات العربية يريد السمكة جاهزة ولايريد أن يتعلم كيف يصطادها

PMEmail PosterUsers Website
Top
goldnoil
Quote Post


مشرف منتدى مبرمجي Microsoft SQL Server
Group Icon

مجموعة المشرفين
مشاركات : 362
رقم العضو 13,643
انضم في : 9-May 03



تمام اخي طارق ابراهيم وشكرا على سرعة الرد

تم تحرير هذه المشاركة بواسطة goldnoil فيJul 24 2004, 03:53 PM


--------------------
إذا لم تزد شيئا على الحياة كنت أنت زائدا على الحياة..

- الرجل الذي صعد الهملايا قال لم أنتصر على جبل.. انتصرت على نفسي!

- لن تكون فاشلا إلا إذا توقفت عن المحاولة


براءة اختراع بالمجان

كل ماتود معرفته عن مسجل النظام

SQL SERVER سلسلة دروس من الصفر حتى الاحتراف
PMEmail Poster
Top
goldnoil
Quote Post


مشرف منتدى مبرمجي Microsoft SQL Server
Group Icon

مجموعة المشرفين
مشاركات : 362
رقم العضو 13,643
انضم في : 9-May 03



سنقوم الآن بشرح عن كيفية استخدام لغة الاستعلامات sql ونحاول تطبيقها معا حتى نعرف كيف نستخدم هذه الاستعلامات في برامجنا

لغة الاستفسارات SQL (1)

المقدمة:

الشيء الذي لن تستطيع تجاهله عند تعلم قواعد البيانات هو لغة الاستفسار أو الاستعلام و التي يعبر عنها بـ SQL ، لكن ما هي فائدة هذه اللغة؟ لنفرض أن لديك موظفين بالمئات و تريد أن تحدد جنسية معينه منهم و تحصرهم لن تستطيع فعل ذلك إلا بلغة الاستعلام حيث يقوم بجمع الحقول التي تساوي الشرط الذي شرطته و هو جنسيتهم ، سنأخذ شرحا مفصلا في هذا الدرس عن الأساسيات و تطبيقات عليها.

الدرس9

أولا ما فائدة هذه اللغة ؟ كما ذكرنا في المقدمة إن فائدتها في حصر القيم التي تطابق القيم المعطاة من قبل المستخدم و تتميز بالسهولة و الدقة و السرعة أيضا كما يمكنك التحكم بها بصوره كبيرة ويمكنك إدخال أكثر من شرط في الاستعلام الواحد، لنفرض أن لدينا جدول اسمه Tb وفيه حقلين باسم name و number و تحتوي هذه الحقول على قيم مدخلة كما في الجدول التالي:



Name number
444 سامي
534 سامي
444 صالح

و نريد أن نستخرج الأسماء التي أرقامها 444 فسنحتاج إلى جملة استعلام بسيطة على الشكل التالي :

CODE
SQL = "select name from Tb where number = 444"


في الجملة السابقة امرنا البرنامج أن يقوم بتحديد قيم الحقل nameمن الجدول Tb عندما تكون قيم الحقل number تساوي 444 ، و وضعنا ذلك في متغير اسمه SQL

دعونا نلقي نظره على طرق الاستعلام

إذا أردت أن تستعلم عن جميع الحقول في جدول بدون شرط استخدم النجمة لتعبر عن جميع الحقول و لا تضع شرطا مثل هذا الاستعلام :

CODE
SQL = "select * from Tb "


إذا أردت أن تستفسر عن قيم حقلين بدون شرط اكتب اسم الحقلين بينهما فاصلة و لا تضع شرطا كالتالي:

CODE
SQL = "select name,number from Tb "


إذا أردت أن تستفسر عن حقل معين بشرط ما استخدم الصيغة التالية:

CODE
SQL = "select name from Tb where number = 444 "


يمكنك استخدام صيغ المقارنة > أو < أو <= أو >= أو <> بدلا من =


عندما تريد الاستعلام و استخدام أكثر من شرط ضع بين الشرطين عبارة And أو OR حسب حاجتك كالتالي:

CODE
SQL = "select name from Tb where number = 444 or number = 555 "


تم تحرير هذه المشاركة بواسطة goldnoil فيJul 24 2004, 03:55 PM


--------------------
إذا لم تزد شيئا على الحياة كنت أنت زائدا على الحياة..

- الرجل الذي صعد الهملايا قال لم أنتصر على جبل.. انتصرت على نفسي!

- لن تكون فاشلا إلا إذا توقفت عن المحاولة


براءة اختراع بالمجان

كل ماتود معرفته عن مسجل النظام

SQL SERVER سلسلة دروس من الصفر حتى الاحتراف
PMEmail Poster
Top
goldnoil
Quote Post


مشرف منتدى مبرمجي Microsoft SQL Server
Group Icon

مجموعة المشرفين
مشاركات : 362
رقم العضو 13,643
انضم في : 9-May 03



لغة الاستفسارات SQL (2

المقدمة:

في هذا الدرس سوف نتعلم استخدام لغة الاستفسار في تطبيق فيجوال بيسك ، من حيث كيفية الاستفسار عن قيمة مدخلة من قبل المستخدم و كيفية وضع نتائج البحث في listbox و combo box

الدرس10

كيف نتعامل مع جملة SQL في البرنامج ؟ هذا هو السؤال الذي سوف نقوم بالإجابة عليه الآن

يجب عليك أن تعرف الفكرة التي سنقوم بتنفيذها ، أول شيء سوف نقوم بعملية الاستعلام و ذلك بكتابة جملة الاستعلام كما تعلمنا في الدرس السابق في المكان الذي تريده و غالبا ما يكون في زر أو عند حدث التحميل ، بعد ذلك سنحصل على نتائج الاستعلام و لكي نقوم بقراءتها و إظهارها يجب أولا أن نخزنها في جدول ، و هنا فائدة الجدول المستعار كما تعلمنا في الدروس الأولى حيث سنقوم بتخزين الناتج فيه ، بعد ذلك سنقوم بعرض النتائج من الجدول ، سنفرض أن لدينا الجدول التالي :

CODE
اسم الجدول        tb
Name          num
Ahmad              1442
Saleh            5425
Sami            1442


لكي نستعلم عن الأسماء التي أرقامها 1442 نكتب الجملة التالية :

CODE
SQL = "select name from Tb where num = 1442 "


هكذا نكون قد قمنا بالاستعلام بعد ذلك تأتي الخطوة التالية و هي تخزين النتائج في الجدول المستعار و الذي نقوم بتعريفه ( لمزيد من التوضيح راجع الدروس السابقة) عادة في الموديول كما قمنا به في الدروس السابقة و لنفرض أن اسمه T و أن اسم المتغير الذي قمنا بتخزين قاعدة البيانات فيه D و التي كنا نطلق عليها القاعدة المستعارة سنكتب الأمر التالي لكي نخزن نتائج الاستعلام في الجدول :

CODE
Set T=D.openrecordset(SQL,dbopendynaset)


لا حظ أننا قمنا باستخدام الأسماء المستعارة للجدول و قاعدية البيانات و هي المتغيرات التي أعلنا عنها في البداية ( راجع دروس سابقة لمزيد من التفاصيل) ، لقد قمنا في الأمر السابق بتخزين قيم الاستعلام في الجدول حيث كتبنا SQL و هي قيمة متغير الاستعلام الذي توجد فيه القيم ، بعد ذلك قمنا بوضع نوع الاتصال أو بالأصح نوع الربط المراد إن صح التعبير على العموم و كما قلنا أن هناك أشياء لا يتطلب منك سوى معرفتها مرة واحدة فقط و ستقوم بتركيبها حسب استخدامك

و الآن بعد أن قمنا بتخزين القيم في الجدول نريد أن نظهر البيانات و يمكنك إظهارها في عدة إشكال كما تريد فيمكنك و ضعها في مربعات نص أو قوائم سواء List أو COMBO ولكل طريقة تختلف نوعا ما عن الأخرى

مربع النص Text Box :
لكي تظهر النتائج في مربع النص فلن تحتاج إلا لإجراء الإظهار كما تعلمنا في السابق و تقوم بكتابته بعد أمر تخزين نتائج الاستعلام في الجدول

List Box :
لتضع النتائج في قائمة: ListBox لن تحتاج لكثير من الخطوات فالأمر ربما أسهل مما تتصور ، فقط تحتاج لهذا الكود:

CODE
For i = 1 To n
List1.AddItem TB!name
TB.MoveNext
Next i


قمنا بعمل تكرار بعدد الحقول لكي يتم تعبئة جميع البيانات في الجدول و لقد عرفنا كيفية معرفة عدد الحقول في دروس الربط بالكود السابقة

بعد ذلك كتبنا اسم القائمة وهو List1 ثم استخدمنا خاصية إضافة عنصر و بعد ذلك نكتب اسم الجدول الذي سوف نأخذ البيانات منه و ثم اسم الحقل المراد يفصل بينهما علامة تعجب ، بعد ذلك خطوة مهمة و هي الانتقال للسجل التالي لكي يقوم بتعبئة القيم الأخرى و إذا لم تضع هذا الأمر سوف تكون جميع الأسماء اسم الحقل الأول ، هذا كل شيء

ComboBox :

لا تختلف طريقة تعبئة هذه القائمة عن الطريقة السابقة أبدا قم بنفس الخطوات
استقبال المدخلات من المستخدم :
لن تستفيد حقيقيا من البرامج التي تعملها إذا لم تعرف طريقة استقبال القيم من المستخدم ثم عمل الاستعلام عليها لأنه من غير المنطقي أن يقوم المستخدم بالرجوع إليك عند كل عملية استعلام ،و طريقة الاستقبال هنا لها طريقة خاصة نوعا ما سنعرفها بعد قليل ، غالبا ما تقوم باستقبال القيم من المستخدم من مربع نص Text Box و المشكلة التي تواجهنا بين المدخلات النصية و الرقمية و يعتمد ذلك على نوع البيانات للحقل المعني دعونا نرى أمثلة على ذلك :
افرض أنك قمت بعمل قاعدة بيانات فيها حقلين الاسم name و حددت نوع البيانات لهذا الحقل بأنها نصية و الحقل الآخر الرقم num و حددت البيانات له بأنها رقمية ، و قمت بربط القاعد مع البرنامج بطريقتنا التي تعلمناها و الآن نريد أن نستعلم عن الرقم للشخص الذي يحدده المستخدم سنقوم في هذه الحالة بإنشاء مربع نص لكي يدخل المستخدم الاسم الذي يريده ثم ننشأ زر يقوم المستخدم بالضغط عليه لتتم عملية الاستعلام ، و ستكون جملة الاستعلام عادية كما تعلمنا و بدلا من أن نضع القيمة التي سنستعلم عنها سنضع القيمة التي ادخلها المستخدم في مربع النص من المتوقع أن يكون الكود المطلوب للاستعلام في هذه الحالة التالي:

CODE
SQL = "select num from tb where name = text1.text "


هذه هي الجملة المتوقعة لكنها خاطئة ، بهذه الطريقة يكون الاستعلام عن عدد لانهائي من الخانات و هذي إن صح التعبير عيب في مربع النص و لكي نتلافى هذا الخطأ نقوم بما يسمى بالحصر على أساس نوع البيانات في name في حالتنا هذه نوع البيانات حرفية لذا تكون طريقة الحصر على الشكل التالي:

CODE
' " & text1.text & " '


لقد قمنا بوضع علامتي تنصيص مزدوجة عليها يفصل بينها علامة الجمع & ثم قمنا بحصرهم جميعا بعلامة تنصيص مفردة ، الخطوة الأخيرة و هي وضع علامة التنصيص المفردة تكون للحقول الحرفية و لا نحتاجها في الحقول الرقمية ، قم بتجربة ذلك الآن لكي تستوعبها جيدا
افرض أن المطلوب الآن هو العكس ، بحيث يقوم المستخدم بإدخال الرقم و يقوم البرنامج بالاستعلام عن الأسماء التي تحمل هذا الرقم سيكون الكود نفس السابق مع تغيير اسم الحقل بطبيعة الحال و أيضا عدم وضع علامة التنصيص المفردة كالتالي:


CODE
SQL = "select num from tb where name =  '" & text1.text & "' "


افرض أن المطلوب الآن هو العكس ، بحيث يقوم المستخدم بإدخال الاسم و يقوم البرنامج بالاستعلام عن الرقم التي تحمل هذا الاسم سيكون الكود نفس السابق مع تغيير اسم الحقل بطبيعة الحال و أيضا عدم وضع علامة التنصيص المفردة كالتالي:

CODE
SQL = "select name from tb where num =  " & text1.text & " "


هذا كل شيء بالنسبة للدرس الثاني من لغة الاستفسار سيوضح الجدول التالي بعض النقاط المهمة في هذا الدرس بالنسبة لاستقبال المدخلات من المستخدم ، و في الدرس الثالث للغة الاستفسار سنتطرق لمواضيع متقدمة مثل الاستفسار من جدولين

" & text1.text & " : نستخدم هذه الطريقة عندما تكون بيانات الشرط رقمية أو عددية و يحدد ذلك من ينشأ قاعدة البيانات

'" & text1.text & "': نستخدم هذه الطريقة عندما تكون بيانات حقل الشرط من نوع البيانات الحرفية.



--------------------
إذا لم تزد شيئا على الحياة كنت أنت زائدا على الحياة..

- الرجل الذي صعد الهملايا قال لم أنتصر على جبل.. انتصرت على نفسي!

- لن تكون فاشلا إلا إذا توقفت عن المحاولة


براءة اختراع بالمجان

كل ماتود معرفته عن مسجل النظام

SQL SERVER سلسلة دروس من الصفر حتى الاحتراف
PMEmail Poster
Top
goldnoil
Quote Post


مشرف منتدى مبرمجي Microsoft SQL Server
Group Icon

مجموعة المشرفين
مشاركات : 362
رقم العضو 13,643
انضم في : 9-May 03



اود ان اشكر المشرفين اولا والقائمين على الموقع ثانيا على تفاعلهم مع الموضوع

وخاصة بعد هذا العدد من الردود والزيارات

واقول الله يرحم ايامك يا اخي HGB

بدونك لن اقول المنتدى بل الموقع كله مايسوى


--------------------
إذا لم تزد شيئا على الحياة كنت أنت زائدا على الحياة..

- الرجل الذي صعد الهملايا قال لم أنتصر على جبل.. انتصرت على نفسي!

- لن تكون فاشلا إلا إذا توقفت عن المحاولة


براءة اختراع بالمجان

كل ماتود معرفته عن مسجل النظام

SQL SERVER سلسلة دروس من الصفر حتى الاحتراف
PMEmail Poster
Top
joe911
Quote Post


عضو مميز
****

مجموعة اعضاء
مشاركات : 758
رقم العضو 24,631
انضم في : 16-April 04



لماذا أخى goldnoil هذا الكلام,
حاول التماس العذر للأخوة فى المنتدى ,
صراحة لا أجد ما اقوله و لكن اعط الأعضاء فرصة من الوقت و اعلن ايقاف الدروس حتى يقوم عدد معين تحدده انت بعنل تطبيق صغير على الدروس,
ما رأيك؟
PMEmail Poster
Top
goldnoil
Quote Post


مشرف منتدى مبرمجي Microsoft SQL Server
Group Icon

مجموعة المشرفين
مشاركات : 362
رقم العضو 13,643
انضم في : 9-May 03



المعذرة منك اخي لكن حتى هذه اللحظة لم تفهمني جيدا

لم اقدم الدروس بهدف ان ارى مشروع اللي بدو يتعلم يعمل لحاله واذا عنده سؤال رح جاوبه انا او اي واحد بالمنتدى

والدروس ما رح اوقفها حتى انتهى منها بالكامل ان شاء الله

وعتبي ليس على الاعضاء فكلهم ماشاء الله متجاوبين


--------------------
إذا لم تزد شيئا على الحياة كنت أنت زائدا على الحياة..

- الرجل الذي صعد الهملايا قال لم أنتصر على جبل.. انتصرت على نفسي!

- لن تكون فاشلا إلا إذا توقفت عن المحاولة


براءة اختراع بالمجان

كل ماتود معرفته عن مسجل النظام

SQL SERVER سلسلة دروس من الصفر حتى الاحتراف
PMEmail Poster
Top
4 مستخدم يقرأون هذا الموضوع (4 ضيف0 مستخدم مجهول)
0 أعضاء:

Topic Options صفحات: (5) « الاول ... 2 3 [4] 5  Reply to this topic Fast ReplyStart new topicStart Poll


 



[ Script Execution time: 0.1734 ]   [ 11 queries used ]   [ ضغط البيانات فعال ]

Google